home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / games / 365 / devastor / deva_gfa.lst next >
File List  |  1987-11-29  |  6KB  |  280 lines

  1. For Colreg=0 To 15
  2.   Setcolor Colreg,1911
  3. Next Colreg
  4. Dim Shape$(3),X(18),Y(18)
  5. @Init
  6. Restore
  7. For Colreg=0 To 15
  8.   Read Pal
  9.   Setcolor Colreg,Pal
  10. Next Colreg
  11. Data 0,1792,112,7,7,119,2017,1365,819,1843,883,1907,823,1847,887,1911
  12. For I=1 To 3
  13.   For P=1 To 12
  14.     Sound 1,15,P,5,1
  15.   Next P
  16.   For P=11 To 2 Step -1
  17.     Sound 1,15,P,5,1
  18.   Next P
  19. Next I
  20. Sound 1,1,0,0,0
  21. L$="  |  "+Chr$(14)+Chr$(15)+"ST DEVASTATOR|an easy arcade game|    in GFA BASIC"
  22. Alert 1,L$,1,"INTRO|START",Key
  23. Hidem
  24. On Key Gosub Text
  25. Restartgame:
  26. X=40
  27. Y=100
  28. Xp=80
  29. Yp=100
  30. Time.limit=9
  31. T=Timer
  32. Charges=1
  33. Score=0
  34. Put X,Y,Cross$,6
  35. Showtime:
  36. Time=Trunc(Timer-T)/200+Frac(Timer-T)
  37. Print At(15,21);"Countdown:";Time.limit-Int(Time)
  38. Nualien:
  39. Ax=80+130*Rnd
  40. Ay=30+60*Rnd
  41. Put Ax,Ay,Alien$,6
  42. I=3
  43. Mainloop:
  44. Vsync
  45. Put Xp,Yp,Shape$(I)
  46. Put X,Y,Cross$,6
  47. Mx=Mousex
  48. My=Mousey
  49. X=X+(-5*(X<Mx)+5*(X>Mx))
  50. Y=Y+(-5*(Y<My)+5*(Y>My))
  51. Put X,Y,Cross$,6
  52. Put Ax,Ay,Alien$,6
  53. Z=Rnd
  54. Ax=Ax+4*(Z<0.3)*(Ax<180)-4*(Z>0.6)*(Ax>Xp)
  55. Z=Rnd
  56. Ay=Ay+4*(Z<0.3)*(Ay<80)-4*(Z>0.6)*(Ay>35)
  57. Put Ax,Ay,Alien$,6
  58. If Time.limit-Int(Time)<0 Then
  59.   Goto Setcharge
  60. Endif
  61. I=I-1
  62. If I=0 Then
  63.   I=3
  64. Endif
  65. If Mousek<1 Then
  66.   Time=Trunc(Timer-T)/200+Frac(Timer-T)
  67.   Print At(15,21);"Countdown:";Time.limit-Int(Time)
  68.   If (Time.limit-Int(Time))<0 Then
  69.     Print At(15,21);"Countdown:  "
  70.   Endif
  71.   Goto Mainloop
  72. Endif
  73. Sound 1,15,11,7,20
  74. If Abs(Ax-X+9)>7 Or Abs(Ay-Y+4)>6 Then
  75.   Sound 1,1,0,0,0
  76.   Goto Mainloop
  77. Endif
  78. Sav.time=Time.limit-Int(Time)
  79. Wave 9,1,7,31,25
  80. Sound 1,15,4,4,2
  81. For I=1 To 15
  82.   Put Ax,Ay,Alien$,6
  83.   Sound 1,15,13-I,0,2
  84.   Setcolor 0,1792
  85.   Pause 1
  86.   Setcolor 0,0
  87. Next I
  88. Wave 9,0,0,0,0
  89. Sound 1,0,0,0,0
  90. Aliens=Aliens+1
  91. Score=Score+10*(Sav.time)
  92. If (Aliens Mod 5)=0 Then
  93.   If Time.limit>1 Then
  94.     Time.limit=Time.limit-1
  95.   Endif
  96. Endif
  97. Print At(16,23);"Score:";Score
  98. T=Timer
  99. Goto Showtime
  100. Setcharge:
  101. For I=1 To 3
  102.   For P=1 To 12
  103.     Sound 1,15,P,5,1
  104.   Next P
  105.   For P=11 To 2 Step -1
  106.     Sound 1,15,P,5,1
  107.   Next P
  108. Next I
  109. Sound 1,1,0,0,0
  110. Print At(14,22);"Charges Set:";Charges
  111. Put Ax,Ay,Alien$,6
  112. For I=1 To 10
  113.   Put 90,31,Earth$,6
  114.   Pause 2
  115. Next I
  116. Rads1=(Pi*Charges/8)*1000
  117. Charges=Charges+1
  118. Rads=(Pi*Charges/8)*1000
  119. Defline 1,2,2,0
  120. Color 2
  121. Circle 100,41,13,Rads1,Rads
  122. If Charges<11 Then
  123.   T=Timer
  124.   Goto Showtime
  125. Endif
  126. For I=1 To 15 Step 0.3
  127.   Put 90-(I*Rnd)/2,31-(I*Rnd)/2+I*Rnd,Earth$,6
  128. Next I
  129. Deffill 0,1,1
  130. For I=1 To 46 Step 2
  131.   Pcircle 95,43,I/2
  132. Next I
  133. Color 1
  134. Box 78,29,241,151
  135. If Score>Hiscore Then
  136.   Hiscore=Score
  137.   N$="|    Good Work!!"
  138. Else
  139.   N$="|Better Luck Next Time"
  140. Endif
  141. Score$=Str$(Score)
  142. Hiscore$=Str$(Hiscore)
  143. M$="  |   Your Score:"+Score$+"|   High Score:"+Hiscore$+N$
  144. Alert 3,M$,1," EXIT |RESTART",Var
  145. If Var=2 Then
  146.   Cls
  147.   Deftext 1,16,0,12
  148.   Text 70,18,"DEVASTATOR"
  149.   Color 1
  150.   Box 78,29,241,151
  151.   For S=1 To 120
  152.     Color Rnd*6+1
  153.     Plot 78+Rnd*155,30+Rnd*80
  154.   Next S
  155.   Deffill 0,1,1
  156.   Pcircle 100,42,10
  157.   Put 90,31,Earth$,6
  158.   Print At(16,23);"Score:0"
  159.   Print At(14,22);"Charges Set:0"
  160.   Goto Restartgame
  161. Endif
  162. Leavegame:
  163. Setcolor 0,1911
  164. Setcolor 15,0
  165. End
  166. Procedure Init
  167.   For Base=1 To 3
  168.     Cls
  169.     X=60
  170.     Y=0
  171.     Z=10
  172.     C=Base
  173.     R=3
  174.     M=2
  175.     For I=1 To 8
  176.       Color C+1
  177.       Draw 0,Y To X,Y To X,Y+Z To 160-X,Y+Z To 160-X,Y To 160,Y To 160,Y+R To 160-X+R,Y+R To 160-X+R,Y+Z+R+M To X-R,Y+Z+R+M To X-R,Y+R To 0,Y+R To 0,Y
  178.       X=X-R-1
  179.       Y=Y+R+1
  180.       Z=Z+M
  181.       R=R+0.7
  182.       C=C+1
  183.       If C>3 Then
  184.         C=1
  185.       Endif
  186.     Next I
  187.     Y=0
  188.     R=3
  189.     C=Base
  190.     For I=1 To 8
  191.       Deffill C+1,1,1
  192.       Fill 1,Y+2
  193.       Y=Y+R+1
  194.       C=C+1
  195.       If C>3 Then
  196.         C=1
  197.       Endif
  198.       R=R+0.75
  199.     Next I
  200.     Color 0
  201.     Line 60,0,X,Y
  202.     Line 100,0,160-X,Y
  203.     Line 60,10,X,Y+Z
  204.     Line 100,10,160-X,Y+Z
  205.     Get 0,0,159,49,Shape$(Base)
  206.   Next Base
  207.   Cls
  208.   Deffill 4,1,1
  209.   Pcircle 10,10,10
  210.   Restore Earth
  211.   For I=0 To 18
  212.     Read X(I),Y(I)
  213.   Next I
  214.   Deffill 10,1,1
  215.   Polyfill 18,X(),Y()
  216.   Earth:
  217.   Data 6,3,11,3,11,5,14,5,14,4,14,7,16,9,17,10,16,8,11,9,11,12,14,12,8,19,4,13,9,11,7,10,6,6,3,5,6,3
  218.   Get 0,0,19,19,Earth$
  219.   Cls
  220.   Color 3
  221.   Line 3,0,3,6
  222.   Line 0,3,6,3
  223.   Get 0,0,6,6,Cross$
  224.   Cls
  225.   Deffill 4,1,1
  226.   Color 2
  227.   Ellipse 30,10,10,5,3200,2200
  228.   Line 20,10,40,10
  229.   Fill 28,8
  230.   Color 3
  231.   Ellipse 30,10,12,5,3200,2200
  232.   Get 10,0,52,25,Alien$
  233.   Cls
  234.   Deftext 1,16,0,12
  235.   Text 70,18,"DEVASTATOR"
  236.   Color 1
  237.   Box 78,29,241,151
  238.   For S=1 To 120
  239.     Color Rnd*6+1
  240.     Plot 78+Rnd*150,30+Rnd*80
  241.   Next S
  242.   Deffill 0,1,1
  243.   Pcircle 100,42,10
  244.   Put 90,31,Earth$,6
  245.   Put 80,100,Shape$(3)
  246.   Print At(16,23);"Score:0"
  247.   Print At(14,22);"Charges Set:0"
  248. Return
  249. Procedure Text
  250.   Sget Screen1$
  251.   Deftext 1,1,0,24
  252.   Cls
  253.   Text 18,22,"D E V A S T A T O R"
  254.   Deftext 1,0,0,6
  255.   Text 26,38,"The Devastator, an alien ship of"
  256.   Text 12,47,"incredible power, is now approaching"
  257.   Text 12,55,"the Earth. Its mission is to utterly"
  258.   Text 20,63,"destroy the planet, and absorb the"
  259.   Text 28,71,"energy released by the explosion"
  260.   Text 28,80,"Earth's primitive technology can"
  261.   Text 28,89,"assemble only one spaceship that"
  262.   Text 10,98,"can hope to discourage the Devestator"
  263.   Text 30,107,"You, as the pilot of that craft"
  264.   Text 36,116,"are truely Earth's last hope."
  265.   Text 10,125,"The Devestator sends out small ships"
  266.   Text 8,134,"to plant the charges that will effect"
  267.   Text 8,143,"Earth's demise. They will attempt to"
  268.   Text 28,152,"evade you, but cannot shoot back."
  269.   Text 18,161,"You have only a few seconds to shoot"
  270.   Text 18,170,"each ship before it plants a charge."
  271.   Text 22,179,"Once ten charges have been planted,"
  272.   Deftext 2,1,0,6
  273.   Text 100,188,"it's too late!"
  274.   Deftext 1,1,0,4
  275.   Text 46,198,"Click either Mouse button to continue"
  276.   Repeat
  277.   Until Mousek
  278.   Sput Screen1$
  279. Return
  280.